package com.songshuai.sales.tool.service;


import com.songshuai.sales.tool.dto.request.service.type.QueryServiceTypeReqDto;
import com.songshuai.sales.tool.dto.request.service.type.ServiceTypeReqDto;
import com.songshuai.sales.tool.dto.response.service.type.ServiceTypeResDto;
import com.songshuai.sales.tool.model.base.YixueBaseServiceType;

import java.util.List;


/**
 * 此类为[基础代码]自动生成,已经拥有基本的增删改成操作 
 * <其他请自行扩展>
 * @Author: 刘汉轩
 * @Date: 2019-04-09 13:41:33
 * 
 */
public interface YixueBaseServiceTypeService{
 	
	
	/**
     * 新增
     * @param entity 
     */
    int insertSelective(YixueBaseServiceType entity);
    
    /**
     * 批量新增
     * @param list 
     */
    void insertBatch(List<YixueBaseServiceType> list);
    
    /**
     * 根据主键修改单条数据
     * @param entity 
     */
    int updateByPrimaryKey(YixueBaseServiceType entity);
    
    /**
     * 根据主键批量修改数据
     * @param list 
     */
    void updateBatch(List<YixueBaseServiceType> list);
    
    /**
     * 根据主键查询单条数据
     * @param id
     */
    YixueBaseServiceType selectByPrimaryKey(Integer id);
    
    /**
     * 根据条件查询单条记录
     * @param entity 
     */
    YixueBaseServiceType selectByEntity(YixueBaseServiceType entity);
    
    /**
     * 根据条件查询多条记录
     * @param entity 
     */
    List<YixueBaseServiceType> selectByEntityList(YixueBaseServiceType entity);
    
    /**
     * 根据条件查询Id
     * @param entity 
     */
    Integer selectById(YixueBaseServiceType entity);
    
    /**
     * 根据条件查询Ids
     * @param entity 
     */
    List<Integer> selectByIds(YixueBaseServiceType entity);
    
    /**
     * 根据主键删除单条记录
     * @param id
     */
    void deleteByPrimaryKey(Integer id);
    
    /**
     * 根据主键删除多条记录
     * @param list
     */
    void deleteBatch(List<Integer> list);
    
    /**
     * 根据某些条件删除
     * @param entity
     */
    void deleteByEntity(YixueBaseServiceType entity);

    /**
     * 根据分类名称查询分类列表
     * @param typeReqDto
     * @return
     */
    List<ServiceTypeResDto> queryServiceTypeList(QueryServiceTypeReqDto typeReqDto);

    /**
     * 保存或更新服务分类
     * @param type
     * @return
     */
    Integer saveOrUpdateServiceType(ServiceTypeReqDto type);

    /**
     * 删除服务分类
     * @param id
     * @return
     */
    Integer deleteServiceType(Integer id);
   
}